function routerTree(data){
    // 查分成最外层父级
    const parents  = data.filter(item => item.pid === 0)
    // 剩下的全是子集
    const children  = data.filter(item => item.pid !== 0)

    dataToTree(parents,children)
    // 如果父级里的子项的id === 子集里的pid ，那么这个子集就是父级的子项
    function dataToTree(parents,children){
        parents.map(p => {
            children.map((c,i) => {
                // 子集pid  === 父级id
                if(c.pid === p.id){
                    // 深拷贝这整个子集
                    let _c = JSON.parse(JSON.stringify(children))
                    // 把深拷贝的这个里面的当前的项删掉
                    _c.splice(i,1)
                    // 把当前项作为父级， 删除后的子集当子集，回调
                    dataToTree([c],_c)

                    // 如果这个父级的children存在，则把这个子集push进去
                    if(p.children){
                        p.children.push(c)
                    // 不存在让父级的children = 当前的子项
                    }else{
                        p.children = [c]
                    }
                }
            })
        })
    }

    return parents
}

// 封装的路由拼接
function formatRouter(userPower){
    let newRouters = userPower.map((r)=>{
        let routes = {
            path : r.path,  
            name : r.name,
            meta : r.meta,
            component : () => import(`@/view/${r.name}/${r.name}.vue`)
        }
        if(r.children){
            routes.children = formatRouter(r.children)
        }
        return routes
    })

    return newRouters
}


export { routerTree, formatRouter }